<?php 
class Disciplina extends CI_Controller
{
	private static $titulo = 'Disicplina';

	public function __construct()
	{
		parent::__construct();
		$this->load->model("Disciplina_Model",'',TRUE);
		$this->load->helper('url','image_lib');
	}
	public function index()
	{
		$data['title'] = 'Disciplina';

		$data['table'] = $this->gerar_tabela($this->Disciplina_Model->get(null));

		$this->carrega_view('disciplina/listadisciplinas', $data);
	}

	public function apagar ($id){
		$this->Disciplina_Model->apaga($id);

		$data = array(
				'title' => Disciplina::$titulo,
				'mensagem' => 'Disciplina apagada com sucesso!',
				'salas' => $this->Disciplina_Model->get(null)
		);
		
		$data['table'] = $this->gerar_tabela($this->Disciplina_Model->get(null));

		$this->carrega_view('disciplina/listadisciplinas', $data);
	}

	public function view($id)
	{
		$data['sala'] = $this->Disciplina_Model->get($id);
	}

	public function criar()
	{
		$this->load->helper('form');
		$this->load->library('form_validation');

		$data['title'] = 'Nova Disicplina';

		$this->form_validation->set_rules(
				'nome',
				'Nome',
				'required|min_length[3]'
		);

		$this->form_validation->set_rules(
				'codigo',
				'Códido',
				'is_unique[disciplina.codigo]|required|numeric'
		);

		$this->form_validation->set_rules(
				'tipo',
				'Tipo da Disiciplina',
				'required|min_length[3]'
		);

		$this->form_validation->set_rules(
				'creditos',
				'Créditos da Disicplina',
				'required|greater_than[0]|less_than[100]'
		);

		if ($this->form_validation->run() === FALSE)
		{

			$this->carrega_view('disciplina/criar', $data);

		}
		else
		{
				
			$this->Disciplina_Model->define_disciplina();
				
			$data = array(
					'title' => Disciplina::$titulo_lista_salas,
					'mensagem' => 'Disciplina criada com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Disciplina_Model->get(null));
			$this->carrega_view('disciplina/listadisciplinas', $data);
		}
	}
	
	function editar($codigo)
	{
		$data['title'] = 'Atualizar Disciplina';
		$data['registro'] = $this->Disciplina_Model->get($codigo);
	
		$this->carrega_view('disciplina/criar', $data);
	}
	
	public function atualizar()
	{
		$this->load->helper('form');
		$this->load->library('form_validation');
	
		$data['title'] = 'Atualizar Disiciplina';
	
		$this->form_validation->set_rules(
				'nome',
				'Nome',
				'required|min_length[3]'
		);
	
		$this->form_validation->set_rules(
				'computnum',
				'Número de computadores',
				'required|greater_than[0]|less_than[100]'
		);
	
		$this->form_validation->set_rules(
				'local',
				'Local',
				'required|min_length[3]'
		);
	
		$this->form_validation->set_rules(
				'capacidade',
				'Computador',
				'required|greater_than[0]|less_than[100]'
		);
	
		if ($this->form_validation->run() === FALSE)
		{
	
			$this->carrega_view('disciplina/criar', $data);
	
		}
		else
		{
	
			$this->Disciplina_Model->update_disciplina();
	
			$data = array(
					'title' => Disciplina::$titulo_lista_salas,
					'mensagem' => 'Disciplina atualizada com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Disciplina_Model->get(null));
			$this->carrega_view('disciplina/listadisciplinas', $data);
		}
	}

	private function gerar_tabela($disciplinas){
		
		$this->load->library('table');
		$this->table->set_empty("&nbsp;");
		$this->table->set_heading('Código', 'Nome', 'Tipo', 'Créditos', 'Ações');
		foreach ($disciplinas as $disciplina){
			$this->table->add_row($disciplina["codigo"], $disciplina["nome"], $disciplina["tipo"], $disciplina["creditos"],
					anchor('disciplina/editar/'.$disciplina["codigo"],'Atualizar',array('class'=>'update')).' '.
					anchor('disciplina/apagar/'.$disciplina["codigo"],'Remover',array('class'=>'delete','onclick'=>"return confirm('Tem cerrteza que deseja remover essa Disciplina ?')"))
			);
		
		
		}
		return ($this->table->generate());
	}
	/**
	 * Carrega a view com o cabeçalho e o rodapé.
	 *
	 * @param unknown_type $caminho_view Caminho da view.
	 * @param unknown_type $dados Array com os dados para a view.
	 */
	private function carrega_view($caminho_view, $dados){

		$this->load->view('templates/cabecalho', $dados);
		$this->load->view($caminho_view, $dados);
		$this->load->view('templates/rodape');
	}
}
?>